A data communications network generally includes a group of interconnected communication channels which provides intercommunication among a combination of elements or devices, for instance, computers, peripherals, etc. Historically, networks have been constructed by utilizing communication channels formed from coaxial cables and/or twisted pair cable configurations and interconnected via a suitable interface, or switching module.
Fiber optic cables are increasingly being used in the network industry, instead of coaxial cables and twisted pairs, because of their much broader bandwidth, better propagation properties, and other optimal transmission characteristics. Recently, the Fibre Channel protocol was developed and adopted as the American National Standard For Information Systems (ANSI). The Fibre Channel industry standard is described in detail in, for example, Fibre Channel Physical And Signalling Interface, Rev. 4.2, American National Standard For Information Systems (ANSI) (1993). The Fibre Channel industry standard provides for much higher performance and greater flexibility than previous industry standards by allowing for variable-length data frames, or packets, to be communicated through fiber optic networks which comply with the standard.
A variable-length frame 11 is illustrated in FIG. 1. The variable-length frame 11 comprises a 4-byte start-of-frame (SOF) indicator 12, which is a particular binary sequence indicative of the beginning of the frame 11. The SOP indicator 12 is followed by a 24-byte header 14, which generally specifies, among other things, the frame source address and the destination address as well as whether the frame 11 is either control information or actual data. The header 14 is followed by a field of variable-length data 16. The length of the data 16 is 0 to 2112 bytes. The data 16 is followed successively by a 4-byte CRC (cyclical redundancy check) code 17 for error detection and/or correction, and by a 4 byte end-of-frame (EOF) indicator 18. The frame 11 of FIG. 1 is much more flexible than a fixed frame and provides for higher performance by accommodating the specific needs of specific applications.
The Fibre Channel industry standard also provides for several different types of data transfers and data frames. For example, a class 1 transfer requires circuit switching, i.e., a reserved data path through the network switch, and generally involves the transfer of more than one data frame, oftentimes numerous data frames, between the network elements. To set up a class 1 transfer, a start-of-frame class 1 (SOFc1) frame, which is typically a small data packet, is initially passed through the switch, and then after the set up, longer data frames are passed through the switch. As another example, a class 2 transfer involves allocation of an independent path through the network switch for each transfer of a single frame from one network element to another. In a class 2 transfer, a receipt acknowledgement frame is sent from the destination port after receipt of the data frame. As still another example, a class 3 transfer is similar to a class 2 transfer, except that the class 3 transfer does not require a receipt acknowledgement frame from a destination port as in the case of a class 2 transfer.
To date, fiber optic switches for implementing networks in accordance with the Fibre Channel industry standard are in a state of infancy. A need exists in the industry for new and improved systems for implementing the Fibre Channel industry standard for fiber optic networks with much higher performance than presently existing systems. Specifically, there is a significant need for a frame time monitoring system for monitoring the time in which a data frame resides within a fiber optic switch. This timing information is important for optimizing performance because it indicates the inability of the switch to successfully communicate the frame to the desired destination port and can be used to flag or instigate remedial action, such as deletion of the respective frame in the switch or return of the frame to its corresponding source port. To make the problem even more difficult and perplexing, the frame time monitoring system must be able to keep track of numerous data frames simultaneously, typically hundreds at an instance in time, and must be able to update timing clocks associated with the frames within hundreds of microseconds (.mu.s) to effectuate acceptable performance. Furthermore, space requirements and complexity in design are other primary considerations.
It is possible that the frame time monitoring system could be implemented in software, which would be run by a conventional processor. However, such a solution would require a lengthy program due to the vast number of timers and logical comparison decisions and would therefore be undesirably slow and the timers would exhibit less than desirable resolution. Moreover, the frame time monitoring system could be implemented with a logic network made up of logic gates. Although this hardware implementation would undoubtedly be faster than the software implementation, the logic network would require numerous gates resulting in unacceptable cost and would require an undesirable amount of space. Finally, both the aforementioned hypothetical software and hardware implementations would be undesirably complex in design.